#include <cstddef>
#include <deque>

namespace xywl {
    template<class T, class Container = std::deque<T>>
    class queue {
        public:
            // 入队列
            void push(const T& x) {
                _conn.push_back(x);
            }
            // 出对列
            void pop() {
                _conn.pop_front();
            }
            // 访问队列的头
            const T& front() const {
                return _conn.front();
            }
            // 访问队列的尾
            const T& back() const {
                return _conn.back();
            }
            // 获取队列的大小
            size_t size() const {
                return _conn.size();
            }
            // 判空
            bool empty() const {
                return _conn.empty();
            }
        private:
            std::deque<T> _conn;
    };
}